Various applications that include data transfer and/or processing may implement one or more data validation techniques to detect errors. Data corruption that occurs during data transfers and/or storage may cause protocol errors. For example, data corruption may affect link control frames, commands, and/or data. A storage controller, such as a hard disk controller (HDC), may apply validation techniques to data that is transferred from a host to an external buffer memory. Exemplary data validation techniques include, but are not limited to, cyclic redundancy check (CRC) validation, parity check validation, and error correcting code (ECC) validation.
Referring now to FIG. 1, an exemplary data transfer and storage system 10 that implements at least one of CRC validation, parity check validation, and ECC validation is shown. The system 10 includes a host 12, a memory controller 14, and an external memory 16. For example, the external memory 16 may be dynamic random access memory (DRAM), synchronous DRAM (SDRAM), and/or double date rate (DDR) RAM. The memory controller 14 transfers data from the host 12 to the external memory 16. For example, the memory controller 14 may be a direct memory access (DMA) controller that is located on an HDC 18.
Typically, the system 10 applies data validation, such as CRC validation, to the data that is transferred from the host 12 to the external memory 16 through the memory controller 14. For example, the HDC 18 may include a CRC module 20 that generates, applies, and checks CRC data. The HDC 18 may also apply data validation to data that is transferred to and from, as well as stored on, an internal memory 22 and/or a memory controller buffer 24. The internal memory 22 may be DRAM, SDRAM, or DDR RAM. The memory controller buffer 24 may be a first in, first out (FIFO) buffer.